package com.qqt.csr.archive.entity.reader;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: yang hao
 * @Date: 2024/11/19 15:55
 * @Description: 智能客服 消息
 **/
@Data
@Schema(description = "智能客服 消息")
@Document(collection = "robotHistoryMsg")
public class SmartMessage implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "会话ID")
    private String sessionId;

    @Id
    @Schema(description = "消息ID")
    private String id;

    @Schema(description = "seq 毫秒级时间戳，用于消息排序")
    private String seqTimeStamp;

    @Schema(description = "渠道ID")
    private String channelId;

    @Schema(description = "渠道类型")
    private String channelType;

    @Schema(description = "渠道名称")
    private String channelName;

    @Schema(description = "消息来源(1、访客 2、机器人；3、系统)--角色")
    private String role;

    @Schema(description = "是否点赞(1、表示已点赞;2、表示点踩)")
    private Integer isUpOrDownVote;

    @Schema(description = "是否评论(1、已评论；0、未评论)")
    private Integer isComment;

    @Schema(description = "是否触发敏感词(1、表示触发；0表示未触发)")
    private Integer isTriggerSensitive;

    @Schema(description = "消息发送时间")
    private String msgSendTime;

    @Schema(description = "访客ID")
    private String vId;

    @Schema(description = "访客昵称")
    private String nickName;

    @Schema(description = "访客URL")
    private String visitorUrl;

    @Schema(description = "机器人ID")
    private String robotId;

    @Schema(description = "机器人名称")
    private String robotName;

    @Schema(description = "机器人头像")
    private String robotHeadUrl;

    @Schema(description = "聊天内容")
    private String message;

    @Schema(description = "消息类型")
    private String messageType;

    @Schema(description = "工作流参数")
    private String workFlowParams;

    @Schema(description = "关联提示词列表")
    private List<String> associatePromptList;

    @Schema(description = "相关度")
    private Number relevance;

    @Schema(description = "答案来源(faq/chunk)")
    private String sourceType;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "创建时间")
    private String createTime;

    @Schema(description = "更新人")
    private String updateBy;

    @Schema(description = "更新时间")
    private String updateTime;

}
